﻿#region Copyright information
// 
// Copyright © 2012-2013 Yongkee Cho. All rights reserved.
// 
// This code is a part of the SubnetworkToolkit and governed under the terms of the
// GNU Lesser General  Public License (LGPL) version 2.1 which accompanies this distribution.
// For more information on the LGPL, please visit http://bol.codeplex.com/license.
// 
// - Filename: Annotations_Human.cs
// - Author: Yongkee Cho
// - Email: yongkeecho@outlook.com
// - Date Created: 2013-01-30 2:55 PM
// - Last Modified: 2013-01-30 3:21 PM
// 
#endregion
using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Data.SQLite;

namespace SubnetworkToolkit.Data
{
    [Database]
    public class AnnotationsHuman : DataContext
    {
        public AnnotationsHuman()
            : base(new SQLiteConnection("Data Source=Data/AnnotationsHuman.db;Version=3")) { }

        public Table<GeneInfo> GeneInfo;
        public Table<GeneOntology> GeneOntology;
        public Table<GeneTypes> GeneType;
        public Table<Symbol2Id> Symbol2Id;
    }

    [Table]
    public class GeneInfo
    {
        [Column]
        public int Id { get; set; }
        [Column]
        public string Symbol { get; set; }
        [Column]
        public string Alternatives { get; set; }
        [Column]
        public string Chromosome { get; set; }
        [Column]
        public string Cytoband { get; set; }
        [Column]
        public string FullName { get; set; }
        [Column]
        public short GeneType { get; set; }
        [Column]
        public string OtherIDs { get; set; }
    }

    [Table]
    public class GeneOntology
    {
        [Column]
        public int Id { get; set; }
        [Column]
        public string Goid { get; set; }
        [Column]
        public short Category { get; set; }
        [Column]
        public short Level { get; set; }
    }

    [Table]
    public class GeneTypes
    {
        [Column]
        public short Id { get; set; }
        [Column]
        public string Name { get; set; }
    }

    [Table]
    public class Symbol2Id
    {
        [Column]
        public string Symbol { get; set; }
        [Column]
        public int Id { get; set; }
    }
}
